Skip to content

feat: companion plugin with 4 slash commands: https://github.com/riboseinc/claude-memory-files/issues/1 - #12

Merged
opoudjis merged 2 commits into
mainfrom
feat/companion-plugin
May 18, 2026
Merged

feat: companion plugin with 4 slash commands: https://github.com/riboseinc/claude-memory-files/issues/1#12
opoudjis merged 2 commits into
mainfrom
feat/companion-plugin

Conversation

@opoudjis

Copy link
Copy Markdown
Member

Implements ticket #1; PR 8 of the delivery sequence.

Lands the companion Claude Code plugin that wraps the curl installer (PR 7) in slash-command UX.

Structure

  • .claude-plugin/marketplace.json (repo root) — declares this repo as a Claude Code plugin marketplace. One plugin: memory-files-tools.
  • tools/plugin/.claude-plugin/plugin.json — plugin manifest.
  • tools/plugin/commands/install-memory-file.md/install-memory-file <slug> [--project <dir>] [--ref <sha>]. Looks up slug in _meta/index.json, shows frontmatter, runs curl | bash on tools/install.sh from main, reports the install result.
  • tools/plugin/commands/remove-memory-file.md/remove-memory-file <slug>. Reads manifest, shows what will be removed, runs tools/uninstall.sh, surfaces backup paths.
  • tools/plugin/commands/list-memory-files.md/list-memory-files [--tag] [--scope] [--team] [--installed] [--include-deprecated]. Fetches the index, filters, renders per-category, suggests next-action commands.
  • tools/plugin/commands/submit-memory-file.md/submit-memory-file <local-path>. Walks the user through frontmatter scaffolding, clones the repo as a sibling, creates a branch, runs the validator, commits via -F file, and opens the PR with --assignee opoudjis and the issue-URL-in-title convention.

The plugin ships only the slash commands and manifests; install.sh and uninstall.sh are fetched from main on each invocation so the installer logic stays current with the catalogue.

Install (post-merge)

/plugin marketplace add riboseinc/claude-memory-files
/plugin install memory-files-tools@claude-memory-files

What's smoke-tested

Plugin tree is well-formed: marketplace.json and plugin.json parse cleanly via jq; slash-command frontmatter follows the Claude Code spec. Full end-to-end /plugin install test requires interactive Claude Code session — the maintainer can confirm post-merge.

🤖 Generated with Claude Code

Implements ticket #1 (#1);
PR 8 of the delivery sequence.

Lands the companion Claude Code plugin that wraps the curl installer in
slash-command UX:

  - .claude-plugin/marketplace.json (at repo root): declares this repo as
    a Claude Code plugin marketplace. Single plugin: memory-files-tools.

  - tools/plugin/.claude-plugin/plugin.json: plugin manifest.

  - tools/plugin/commands/install-memory-file.md
    /install-memory-file <slug> [--project <dir>] [--ref <sha>]
    Looks up the slug in the catalogue index, shows frontmatter, runs
    curl | bash on tools/install.sh from main, reports the install result.

  - tools/plugin/commands/remove-memory-file.md
    /remove-memory-file <slug>
    Reads the manifest, shows what will be removed, asks for confirmation,
    runs tools/uninstall.sh. Surfaces backup paths for settings-fragment
    un-merge.

  - tools/plugin/commands/list-memory-files.md
    /list-memory-files [--tag <tag>] [--scope <s>] [--team <t>] [--installed]
    Fetches _meta/index.json, filters, renders as a per-category list,
    suggests next-action slash commands.

  - tools/plugin/commands/submit-memory-file.md
    /submit-memory-file <path-to-local-file.md> [--category <c>]
    Walks the user through frontmatter scaffolding (with controlled-tag
    vocabulary lookup), clones the repo as a sibling per the
    sibling-clones convention, creates a feature branch, runs the
    validator, commits via -F file per github-content-via-file, and opens
    the PR with --assignee opoudjis and the issue-URL-in-title convention.

The plugin ships only the slash commands and the manifests; install.sh and
uninstall.sh are fetched from main on each invocation so the installer
logic stays current.

Install:
  /plugin marketplace add riboseinc/claude-memory-files
  /plugin install memory-files-tools@claude-memory-files

Smoke test #5 from the plan: validated locally that the plugin tree is
well-formed (marketplace.json + plugin.json parse cleanly via jq; slash
command frontmatter follows the Claude Code spec); the full end-to-end
test requires installing via `/plugin install` which the maintainer can
do interactively post-merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@opoudjis opoudjis self-assigned this May 18, 2026
Adds two checks to validate.yml that gate PR 8 and any future plugin work:

  - marketplace.json + plugin.json must be valid JSON; every declared
    plugin source path must exist and contain a valid plugin.json.
  - Every slash command markdown in a declared plugin must have YAML
    frontmatter with a non-empty 'description:' field.

Closes a CI gap that PR 8 would otherwise leave: plugin manifests and
slash command frontmatter had no automated validation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@opoudjis
opoudjis merged commit d71c4c7 into main May 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant